import { IPSSysDBColumn } from './ipssys-dbcolumn';
import { IPSSysDBIndex } from './ipssys-dbindex';
import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * @export
 * @interface IPSSysDBTable
 */
export interface IPSSysDBTable extends IPSModelObject {
  /**
   * 数据列集合
   *
   * @type {IPSSysDBColumn[]}
   */
  getAllPSSysDBColumns(): IPSSysDBColumn[] | null;

  /**
   * 数据列集合
   *
   * @type {IPSSysDBColumn[]}
   */
  get allPSSysDBColumns(): IPSSysDBColumn[] | null;

  findPSSysDBColumn(objKey: any): IPSSysDBColumn | null;

  /**
   * 索引集合
   *
   * @type {IPSSysDBIndex[]}
   */
  getAllPSSysDBIndices(): IPSSysDBIndex[] | null;

  /**
   * 索引集合
   *
   * @type {IPSSysDBIndex[]}
   */
  get allPSSysDBIndices(): IPSSysDBIndex[] | null;

  findPSSysDBIndex(objKey: any): IPSSysDBIndex | null;

  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 建立SQL
   * @type {string}
   */
  createSql: string;

  /**
   * 移除SQL
   * @type {string}
   */
  dropSql: string;

  /**
   * 逻辑名称
   * @type {string}
   */
  logicName: string;

  /**
   * 自动扩展结构
   * @type {boolean}
   */
  autoExtendModel: boolean;

  /**
   * 现有数据结构
   * @type {boolean}
   */
  existingModel: boolean;
}
